// 创建promise
const done = true;
const p1 = new Promise((resolve, reject) => {
  // resolve表示成功的回调
  // reject表示失败的回调
  setTimeout(() => {
    if (!done) {
      resolve("ok");
    } else {
      reject("不ok");
    }
  }, 1000);
});

const p2 = new Promise((resolve, reject) => {
  // resolve表示成功的回调
  // reject表示失败的回调

  setTimeout(() => {
    if (done) {
      resolve("好");
    } else {
      reject("不好");
    }
  }, 3000);
});

// 接受一个数组
const all = (arr) => {
  return new Promise((resolve, reject) => {
    if (!Array.isArray(arr)) {
      reject("参数不是数组");
    }
    const newarr = [];
    for (let i = 0; i < arr.length; i++) {
      arr[i]
        .then((res) => {
          newarr.push(res);
          if (newarr.length === arr.length) {
            resolve(newarr);
          }
        })
        .catch((err) => {
          reject(err);
        });
    }
  });
};

all([p1, p2])
  .then((res) => {
    console.log(res);
  })
  .catch((err) => {
    console.log(err);
  });
